package com.fowo.api.model.fee.apportion.obj;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 费用分摊对象 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class FeeApportionObjImportPo {

  /** 所属费用管理 */
  @ExcelProperty("所属费用管理")
  @Size(max = 50, message = "所属费用管理长度不能超过50")
  private String parentFeeManageCreateUser;

  @ExcelIgnore
  @Schema(title = "所属费用管理")
  private String parentFeeManage;

  /** MSKU */
  @ExcelProperty("*MSKU")
  @NotBlank(message = "MSKU不能为空")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** ASIN */
  @ExcelProperty("*ASIN")
  @NotBlank(message = "ASIN不能为空")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** 父ASIN */
  @ExcelProperty("*父ASIN")
  @NotBlank(message = "父ASIN不能为空")
  @Size(max = 50, message = "父ASIN长度不能超过50")
  private String fasin;

  /** SKU */
  @ExcelProperty("*SKU")
  @NotBlank(message = "SKU不能为空")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 500, message = "品名长度不能超过500")
  private String nameName;

  @ExcelIgnore
  @Schema(title = "品名")
  private String name;

  /** 店铺 */
  @ExcelProperty("*店铺")
  @NotBlank(message = "店铺不能为空")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopIdShopName;

  @ExcelIgnore
  @Schema(title = "*店铺")
  private String shopId;

  /** 分摊类型 */
  @ExcelProperty("*分摊类型")
  @NotBlank(message = "分摊类型不能为空")
  @EnumsString(
    value = { "按天", "按月" },
    message = "分摊类型只能是“按天”, “按月”中的一个"
  )
  private String apportionType;

  /** 分摊日期 */
  @ExcelProperty("*分摊日期")
  @NotBlank(message = "分摊日期不能为空")
  @DateString(message = "分摊日期不是有效的日期格式")
  private String apportionDate;

  /** 费用类型 */
  @ExcelProperty("费用类型")
  private String feeType;

  /** 支收选择 */
  @ExcelProperty("*支收选择")
  @NotBlank(message = "支收选择不能为空")
  @EnumsString(
    value = { "支出", "收入" },
    message = "支收选择只能是“支出”, “收入”中的一个"
  )
  private String xz;

  /** 原币金额 */
  @ExcelProperty("*原币金额")
  @NotBlank(message = "原币金额不能为空")
  @DecimalString(message = "原币金额小数格式不正确", label = "原币金额")
  private String originalMoney;

  /** 原币 */
  @ExcelProperty("*原币")
  @NotBlank(message = "原币不能为空")
  @Size(max = 60, message = "原币长度不能超过60")
  private String originalName;

  @ExcelIgnore
  @Schema(title = "*原币")
  private String original;

  /** 本位币金额 */
  @ExcelProperty("本位币金额")
  @DecimalString(message = "本位币金额小数格式不正确", label = "本位币金额")
  private String standardCoinMoney;

  /** 汇率 */
  @ExcelProperty("汇率")
  @Size(max = 50, message = "汇率长度不能超过50")
  private String exchangeRate;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;
}
